/**
 * (C)2012 Exlu Corporation. All rights reserved.
 * 注意事項   :
 */
package cn.exlu.wea.io.directory.file;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * 字节读取器
 * @author Mark
 * @version 1.0.1.1
 * @CreateTime 2013-1-23
 */
public class FileByteReader {
    private BufferedInputStream buffReader;
    
    /**
     * 构造函数
     * @param fileFullPath 文件全路径
     * @throws FileNotFoundException 没有找到文件
     */
    public FileByteReader(String fileFullPath) throws FileNotFoundException{
        buffReader=new BufferedInputStream(new FileInputStream(fileFullPath));
    }
    
    /**
     * 读取多个字节写入数组集合
     * @param byteArr 字节集合
     * @param off 起始位置
     * @param len 写入字节数
     * @return 读取的字节数；如果已到达流末尾，则返回 -1。
     * @throws IOException 读取异常
     */
    public int read(byte[] byteArr,int off,int len) throws IOException{
        return buffReader.read(byteArr, off, len);
    }
    
    /**
     * 读取多个字节写入数组集合
     * @param byteArr 字节集合
     * @return 读入缓冲区的字节总数，如果因为已经到达流末尾而没有更多的数据，则返回 -1。
     * @throws IOException 读取异常
     */
    public int read(byte[] byteArr) throws IOException{
       return buffReader.read(byteArr);
    }
    
    /**
     * 剩余未读取的字节数
     * @return 字节数
     */
    public int available(){
        try {
            return buffReader.available();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return 0;
    }
    
    /**
     * 关闭文件
     * @throws IOException 关闭异常
     */
    public void close() throws IOException{
        buffReader.close();
    }
}
